#第一种形式
#foreach(loop_var arg1 arg2 ...)
#...
#endforeach(loop_var)
# 第一种形式 foreach 循环 i依次取后面列表中的每个值，后面列表中的值可以是纯数字或者数字与字符串的混合
foreach(I ddd ggg 2 4)
    message(STATUS "CUR I is " ${I})
endforeach(I)
message(STATUS "================")

#第二种形式
#foreach(loop_var RANGE total)
#endforeach(loop_var)
#2、第二种形式
#从0开始直到total结束(包含total)，这里就是对纯数字的遍历了
foreach(I RANGE 5)
message(STATUS "CUR I is " ${I})
endforeach(I)
message(STATUS "================")

#3、第三种形式
#foreach(loop_var RANGE start stop [step])
#endforeach(loop_var)
#从start开始直到stop结束之间的值，可以设置步进值step。也是纯数字的遍历
# 第三种形式，从1开始 5结束 步长2遍历，也是纯数字的遍历
foreach(I RANGE 1 5 2)
    message(STATUS "CUR I is " ${I})
endforeach(I)
message(STATUS "================")

#4、第四种形式
#foreach(loop_var IN [LISTS [list1 [...]]] [ITEMS [item1 [...]]])
#endforeach(loop_var)
set(A 0;1)
set(B 2 3)
set(C "4 5")
set(D 6;7 8)
set(E "")
# 注意 LISTS 后面的必须是变量
foreach(X IN LISTS A B C D E)
    message(STATUS "X=${X}")
endforeach()
# 这两种方式是等价的
foreach(X IN ITEMS ${A} ${B} ${C} ${D} ${E})
    message(STATUS "X=${X}")
endforeach()



# cmake -P foreach.cmake